package com.example.Gui;

import com.example.Utils.HttpUtil;
import com.example.Utils.ResultUtil;
import lombok.extern.slf4j.Slf4j;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;

@Slf4j
//注册
public class RegisterUi {
    JFrame jFrame=new JFrame("注册");
    //面板
    JPanel jPanel=new JPanel();
    //大盒子
    Box box=Box.createVerticalBox();
    //姓名组件
    Box nameBox= Box.createHorizontalBox();
    JLabel nameLabel =new JLabel("姓名");
    JTextField nameText=new JTextField(15);
    //班级组件
    Box classBox= Box.createHorizontalBox();
    JLabel classLabel =new JLabel("班级");
    JTextField classText=new JTextField(15);
    //账号组件
    Box userBox= Box.createHorizontalBox();
    JLabel userLabel =new JLabel("学号");
    JTextField userText=new JTextField(15);
    //密码组件
    Box passBox= Box.createHorizontalBox();
    JLabel passLabel =new JLabel("密码");
    JTextField passText=new JTextField(15);
    //单选框
    Box sexBox=Box.createHorizontalBox();
    JLabel sexLabel=new JLabel("性别");
    JRadioButton boy=new JRadioButton("男");
    JRadioButton girl=new JRadioButton("女" );
    ButtonGroup sexGroup=new ButtonGroup();
    //按钮
    Box buttonBox=Box.createHorizontalBox();
    JButton quit=new JButton("退出");
    JButton reg=new JButton("注册");


    void reInit(){
        //默认配置
        jFrame.add(jPanel);
        jFrame.setSize(400,300);
        jFrame.setLocationRelativeTo(null);
        jFrame.setVisible(true);
        jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        jFrame.setResizable(false);
        //组装组件
        //姓名
        nameBox.add(nameLabel);
        nameBox.add(Box.createHorizontalStrut(15));
        nameBox.add(nameText);
        //班级
        classBox.add(classLabel);
        classBox.add(Box.createHorizontalStrut(15));
        classBox.add(classText);
        //账号
        userBox.add(userLabel);
        userBox.add(Box.createHorizontalStrut(15));
        userBox.add(userText);
        //密码
        passBox.add(passLabel);
        passBox.add(Box.createHorizontalStrut(15));
        passBox.add(passText);
        //性别
        sexGroup.add(boy);
        sexGroup.add(girl);
        sexBox.add(sexLabel);
        sexBox.add(Box.createHorizontalStrut(15));
        sexBox.add(boy);
        sexBox.add(girl);
        sexBox.add(Box.createHorizontalStrut(115));
       //组装按钮
        buttonBox.add(quit);
        buttonBox.add(Box.createHorizontalStrut(60));
        buttonBox.add(reg);

        box.add(Box.createVerticalStrut(40));
        box.add(nameBox);
        box.add(Box.createVerticalStrut(10));
        box.add(classBox);
        box.add(Box.createVerticalStrut(10));
        box.add(sexBox);
        box.add(Box.createVerticalStrut(10));
        box.add(userBox);
        box.add(Box.createVerticalStrut(10));
        box.add(passBox);
        box.add(Box.createVerticalStrut(10));
        box.add(buttonBox);
        jPanel.add(box);


        //监听按钮
        //退出
        quit.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                jFrame.dispose();
                try {
                    new LoginUI().init();
                } catch (Exception ex) {
                    throw new RuntimeException(ex);
                }
            }
        });

        /*
        * 注册
        * */
       reg.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent e) {
               String name = nameText.getText();
               String id= userText.getText();
               String passwd=passText.getText();
               String CLASS=classText.getText();
               Map<String,String> map=new HashMap<>();
               map.put("id",id);
               map.put("name",name);
               map.put("CLASS",CLASS);
               map.put("passwd",passwd);
              String result= HttpUtil.sendPost("http://localhost:8080/register",map);
               if (ResultUtil.ResultParse(result).equals("1")){
                   log.info("注册成功");
                   JOptionPane.showMessageDialog(null,"注册成功！" );
                   jFrame.dispose();
                   try {
                       new LoginUI().init();
                   } catch (Exception ex) {
                       throw new RuntimeException(ex);
                   }
               }
           }
       });


    }
}
